package jogoBolaoeArmazenador.rn;

import java.io.Serializable;
import java.sql.Date;
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;


@SuppressWarnings("serial")
@Entity
public class Bolao implements Serializable{
	
	private String _nome;
	private String _dataDeCriacao;
	private int _ID;
	
	@ManyToOne
	private Usuario _admin;
	
	@OneToMany
	private HashMap<Usuario, ArrayList<Integer>> _participantes = new HashMap<Usuario, ArrayList<Integer>>(); 
	
	@OneToMany
	private HashSet<Volante> _volantes = new HashSet<Volante>();
	
	private int _totalDeCotas;
	private int _numeroDoSorteio;
	private HashSet<Integer> _resultado = null;
	
	public Bolao(){}
	
	public Bolao(Usuario admin){
		_admin = admin;
		DateFormat df = DateFormat.getInstance();
		_dataDeCriacao = df.format(new Date(System.currentTimeMillis()));
	}
	
	public String toString(){
		return _nome + "; "+ _dataDeCriacao;
	}
	
	//Getters e setters
	
	@Id
	@GeneratedValue
	public int get_ID(){
		return _ID;
	}

	public Integer get_totalDeCotas() {
		return _totalDeCotas;
	}
	
	public void set_totalDeCotas(int numeroDeCotas) {
		_totalDeCotas = numeroDeCotas;
	}

	public HashMap<Usuario, ArrayList<Integer>> get_participantes() {
		return _participantes;
	}

	public HashSet<Volante> get_volantes() {
		return _volantes;
	}

	public Usuario get_admin() {
		return _admin;
	}

	public void addVolante(Volante volante) {
		_volantes.add(volante);
	}

	public void removeVolante(Volante volante) {
		_volantes.remove(volante);
	}

	public void set_nome(String nome) {
		_nome = nome;
	}

	public void set_numeroDoSorteio(int numeroSorteio) {
		_numeroDoSorteio = numeroSorteio;
	}

	public String get_dataDeCriacao() {
		return _dataDeCriacao;
	}

	public void set_dataDeCriacao(String _dataDeCriacao) {
		this._dataDeCriacao = _dataDeCriacao;
	}

	public HashSet<Integer> get_resultado() {
		return _resultado;
	}

	public void set_resultado(HashSet<Integer> _resultado) {
		this._resultado = _resultado;
	}

	public String get_nome() {
		return _nome;
	}

	public int get_numeroDoSorteio() {
		return _numeroDoSorteio;
	}

	public void set_ID(int _ID) {
		this._ID = _ID;
	}

	public void set_admin(Usuario _admin) {
		this._admin = _admin;
	}

	public void set_participantes(
			HashMap<Usuario, ArrayList<Integer>> _participantes) {
		this._participantes = _participantes;
	}

	public void set_volantes(HashSet<Volante> _volantes) {
		this._volantes = _volantes;
	}
	
}
